package com.cdhospital.intercept;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfplugin.mail.MailKit;

/**
 * 拦截
 */
public class LogInterceptor implements Interceptor {
	
	public void intercept(Invocation inv) {
		System.out.println("Before invoking " + inv.getActionKey());
		
		System.err.println(inv.getController().getResponse().getStatus());
		
		if(inv.getController().getResponse().getStatus()>=400){
			
			String httpMethod = inv.getController().getRequest().getMethod();
			String queryString = inv.getController().getRequest().getQueryString();
			String url;
			try {
				url = ("".equals(queryString) || queryString == null) ? inv.getController().getRequest()
						.getRequestURL().toString() : inv.getController().getRequest()
						.getRequestURL()
						+ "?"
						+ URLDecoder.decode(queryString, "utf-8");
			} catch (UnsupportedEncodingException e1) {
				e1.printStackTrace();
				url = ("".equals(queryString) || queryString == null) ? inv.getController().getRequest()
						.getRequestURL().toString() : inv.getController().getRequest()
						.getRequestURL() + "?" + queryString;
			}
			MailKit.send("179946422@qq.com", null, queryString,inv.getController().getResponse().getStatus()+"错误了");

			if(inv.getController().getResponse().getStatus()>=500){
				MailKit.send("179946422@qq.com", null, inv.getController().toString(), inv.getController().getResponse().getStatus()+"错误了");
			}
		}
		inv.invoke();
		System.out.println("After invoking " + inv.getActionKey());
	}
}
